import apis from '../../http/api/apis.js';
export default {
    namespaced: true,
    state: {
        // 平台管理员下的销售员列表界面的页码设置
        pages: 0,
        total: 0,
        salesData: [],
        pageSize: 3,
        currentPage: 1,
        // 新增销售员
        newSale: {
            username: "",
            password: "",
            name: "",
            age: "",
            gender: "",
            phone: "",
            headSculpture: "",
        },
        // 修改销售员的信息
        updateSale: {},
    },
    mutations: {
        // 设置销售员列表界面的页码
        setPageData(state, data) {
            state.salesData = data.sales;
            state.pages = data.pages;
            state.total = data.total;
        },
        setPageSize(state, pageSize) {
            state.pageSize = pageSize;
        },
        setCurrentPage(state, currentPage) {
            state.currentPage = currentPage;
        },
        setUpdateSale(state, data) {
            state.updateSale = data;
        },
    },
    actions: {
        // context 接收到的是当前仓库对象
        // 获取所有销售员数据
        async getSales(context) {
            const { data } = await apis.salesManage.getSales({
                pageSize: context.state.pageSize,
                currentPage: context.state.currentPage,
            });
            // 请求成功后，获取到所有销售员数据
            // console.log(data);
            if (data.code) {
                // 在 actions 中调用 mutations 方法，并且将数据传给 mutations 
                context.commit('setPageData', data.data);
            }
        },
        // 新增销售员
        async addSales(context) {
            if (context.state.newSale.username && context.state.newSale.password) {
                const { data } = await apis.salesManage.addSales(context.state.newSale);
                if (data.code == 2) {
                    alert("该销售员账号已被注册")
                } else if (data.code == 1) {
                    alert("新增销售员成功");
                    context.dispatch("getSales");
                }
            } else {
                alert("销售员的账号和密码不能为空");
            }

        },
        // 修改销售员
        async modifySales(context, newData) {
            const { data } = await apis.salesManage.modifySales(newData);
            if (data.code) {
                alert("修改销售员成功");
                context.dispatch("getSales");
                location.hash = "#system/salesList";
            }
        },
        // 通过_id删除销售员
        async deleteSales(context, _id) {
            const { data } = await apis.salesManage.deleteSales({ _id });
            if (data.code) {
                alert("删除销售员成功");
                // 在actions里调用另一个actions方法，用context.dispatch()
                context.dispatch("getSales");
            }
        },
    },
}